/**
 * 金额工具类测试示例
 */

const MoneyUtils = require('./money.js');

// 测试用例
function testMoneyUtils() {
  console.log('=== 金额工具类测试 ===');
  
  // 测试格式化
  console.log('格式化测试:');
  console.log('1.234567 ->', MoneyUtils.formatAmount(1.234567)); // 1.23
  console.log('1.999 ->', MoneyUtils.formatAmount(1.999)); // 2.00
  console.log('"2.1" ->', MoneyUtils.formatAmount("2.1")); // 2.10
  console.log('null ->', MoneyUtils.formatAmount(null)); // 0.00
  
  // 测试显示格式化
  console.log('\n显示格式化测试:');
  console.log('1.234567 ->', MoneyUtils.formatDisplay(1.234567)); // ¥1.23
  console.log('1.999 ->', MoneyUtils.formatDisplay(1.999, '$')); // $2.00
  
  // 测试运算
  console.log('\n运算测试:');
  console.log('1.1 + 2.2 =', MoneyUtils.add(1.1, 2.2)); // 3.30
  console.log('2.5 - 1.2 =', MoneyUtils.subtract(2.5, 1.2)); // 1.30
  console.log('1.5 * 3 =', MoneyUtils.multiply(1.5, 3)); // 4.50
  console.log('10 / 3 =', MoneyUtils.divide(10, 3)); // 3.33
  
  // 测试验证
  console.log('\n验证测试:');
  console.log('1.23 是否有效:', MoneyUtils.isValidAmount(1.23)); // true
  console.log('"abc" 是否有效:', MoneyUtils.isValidAmount("abc")); // false
  console.log('null 是否有效:', MoneyUtils.isValidAmount(null)); // false
  
  // 测试比较
  console.log('\n比较测试:');
  console.log('1.23 vs 1.24:', MoneyUtils.compare(1.23, 1.24)); // -1
  console.log('2.00 vs 2.00:', MoneyUtils.compare(2.00, 2.00)); // 0
  console.log('3.50 vs 3.49:', MoneyUtils.compare(3.50, 3.49)); // 1
  
  // 测试数组操作
  console.log('\n数组操作测试:');
  const amounts = [1.234, 2.567, 3.999];
  console.log('原数组:', amounts);
  console.log('格式化后:', MoneyUtils.formatAmounts(amounts));
  console.log('总和:', MoneyUtils.sum(amounts));
}

// 在小程序中可以这样调用测试
// testMoneyUtils();

module.exports = {
  testMoneyUtils
};